<?php
/**
 * <https://y.st./>
 * Copyright © 2016 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'phpDocumentor',
	'<{body}>' => <<<END
<p>
	On <a href="ircs://kitsune6uv4dtdve.onion:6697/%23Volatile">#Volatile</a>, ion was talking about how hard it is to get onto the <a href="ircs://sbuk7aqcxkoyipwv.onion:49202/">Anonops $a[IRC] network</a>.
	The problem is that they ban $a[Tor] users, then allow them to use an onion address to access the network if and only if the user has an account that has permission to use $a[Tor].
	Acquiring permission to use $a[Tor] requires being an active participant on the network for three days, then specially requesting it.
	At that point, it&apos;s a bit too late for using $a[Tor] to do some of the good that it should be doing, and Anonops knows who you are.
	For a group that is supposedly really big on being anonymous, they sure do hate anonymity! Really, they&apos;re just a lot of hypocrites.
	I&apos;ve set up an onion port forward to make accessing the network over $a[Tor] possible for the requisite three days.
</p>
<p>
	I figured that it was about time that I both expanded the comments in include.d and wrote up some online documentation for these classes, functions, and constants.
	As I wanted the comments to contain everything useful from the online documentation and maybe a little more, I looked into <a href="https://phpdoc.org./">phpDocumentor</a>.
	$a[PHP] even has a <code>T_DOC_COMMENT</code> token, which kind of means that that comment style is the kind favored by the developers.
	I got phpDocumentor running, but it seems like it has some disadvantages.
	The main issue is that it generates a documentation file for each named construct and another one for each code file.
	Because of the way $a[PHP]&apos;s autoloading works, the most effective way to define classes is one per file.
	In turn, my understanding is that this autoloading behavior was decided upon because of how common it was for programmers to put one class in each file.
	In other words, it&apos;s a very common use case that there would be no need to have separate documentation for files and classes.
	Additionally, I use the same convention for my functions and constants to avoid having to load functions and constants that won&apos;t be used in a particular project.
	Half of the documentation files generated aren&apos;t useful, and they can&apos;t just be removed, as the file documentation pages and the class documentation pages link to each other.
	The documentation also shows the values of all the constants.
	Needing to know the values of the constants kind of makes constants less valuable.
	Looking at the source code, the source code uses capital letters in some (though not all) $a[HTML] tags, meaning that documentation generated would need to be cleaned up before being served as $a[XHTML].
	The documentation generated also makes use of deprecated $a[HTML] attributes which would also need to be cleaned up.
	While I can&apos;t live with the unclean code, I think I could deal with the other issues.
	The documentation also makes heavy use of frames, but I could pass that off of being the fault of the documentation generator and call it fine.
</p>
<p>
	I tried upgrading to a more recent version of phpDocumentor, and that fixed some of the issues.
	The code was a lot cleaner, though the deprecated attribute was still used on one page.
	This page detailed errors found during documentation generation, and I think once I go through and correct the errors, the deprecated element would disappear from the file.
	The frame use in the new version is outright confusing and difficult to navigate though.
	Additionally, some navigation elements don&apos;t work without JavaScript enabled and the self-closing syntax of $a[HTML] tags is used inconsistently.
	Some $a[HTML]-only entities are also used, which don&apos;t seem to function correctly when use with $a[XHTML] and the $a[HTML]5/$a[XHTML]5 <code>&lt;!DOCTYPE&gt;</code>.
	I blame the fact that the $a[WHATWG] got all the useful information stripped from the <code>&lt;!DOCTYPE&gt;</code> declaration.
	They thought that stripping it down would make it easier for developers.
	However, in $a[XML], only the five $a[XML]-defined entities can be used unless the <code>&lt;!DOCTYPE&gt;</code> declaration is used to pull in other entity definitions or the entities are defined within the $a[XML] file itself.
	With further experimentation, I came to the conclusion that I need to build my own template set for use with phpDocumentor, but the documentation on how to actually do that is <a href="https://manual.phpdoc.org./HTMLSmartyConverter/PHP/Converters/HTMLSmarty/tutorial_HTMLSmartyConverter.cls.html">missing</a>.
</p>
<p>
	I applied for three jobs, found one place isn&apos;t hiring, and tried again to apply at a place that has a broken website.
	The website is still too broken to make application possible.
</p>
<p>
	I haven&apos;t been able to find my wallet all day.
	I fear that I lost it when I was out yesterday.
	That would really suck.
	Hopefully I simply misplaced the wallet here at home and it turns up soon.
</p>
END
);
